home *** CD-ROM | disk | FTP | other *** search
/ Business Shareware / Business Shareware.iso / start / hobby / aa_51 / ovenus.c < prev    next >
C/C++ Source or Header  |  1993-02-13  |  2KB  |  88 lines

  1. /* Orbital elements and perturbations for the planet Venus
  2.  * using formulas given by Meeus
  3.  */
  4. #include "planet.h"
  5. #include "kep.h"
  6.  
  7. /* Orbital elements
  8.  */
  9. int ovenus(e,J)
  10. struct orbit *e;
  11. double J;
  12. {
  13. double p;
  14.  
  15. e->epoch = J;
  16. manoms(J);
  17. e->M = M2;
  18. e->a = 0.7233316;
  19. e->ecc = (0.000000091*T - 0.00004774)*T + 0.00682069;
  20. #if OFDATE
  21. e->equinox = J;
  22. e->i = (-0.0000010*T + 0.0010058)*T + 3.393631;
  23. f =  ( -0.0013864*T + 0.5081861)*T + 54.384186;
  24. e->w = mod360(f);
  25. f = ( 0.0004100*T + 0.8998500)*T + 75.779647;
  26. e->W = mod360(f);
  27. f = ( 0.0003097*T + 58519.21191)*T + 342.767053;
  28. e->L = mod360(f);
  29. #else
  30. e->equinox = J2000;
  31. e->i = ((1.8e-8*T - 3.250e-5)*T - 0.0007913)*T + 3.395459;
  32. f =  ((-7.94e-7*T - 0.00114464)*T + 0.2892764)*T + 54.602827;
  33. e->w = mod360(f);
  34. f = ((7.69e-7*T - 0.00014010)*T - 0.2776656)*T + 76.957740;
  35. e->W = mod360(f);
  36. f = e->M + e->w + e->W;
  37. e->L = mod360(f);
  38. #endif
  39. /* The following perturbation is applied
  40.  * before solving Kepler's equation:
  41.  */
  42. f = (237.24 + 150.27*T)*DTR;
  43. p = 0.00077 * sin(f);
  44. e->L += p;
  45. e->M += p;
  46. return(0);
  47. }
  48.  
  49.  
  50. /* Perturbations added after solving Kepler's equation
  51.  */        
  52. int cvenus(e)
  53. struct orbit *e;
  54. {
  55. double p;
  56.  
  57. /* perturbation in longitude */
  58. f = (2.0*M - 2.0*M2 - 148.225)*DTR;
  59. p = 0.00313*cos(f);
  60. f = (3.0*M - 3.0*M2 + 2.565)*DTR;
  61. p += 0.00198*cos(f);
  62. f = (M - M2 - 119.107)*DTR;
  63. p += 0.00136*cos(f);
  64. f = (3.0*M - 2.0*M2 - 135.912)*DTR;
  65. p += 0.00096*cos(f);
  66. f = (M5 - M2 - 208.087)*DTR;
  67. p += 0.00082*cos(f);
  68. e->L += p*DTR;
  69.         
  70. /* perturbation in radius vector */
  71. f = (2.0*M - 2.0*M2 - 58.208)*DTR;
  72. p = 0.000022501 * cos(f);
  73. f = (3.0*M - 3.0*M2 + 92.577)*DTR;
  74. p += 0.000019045 * cos(f);
  75. f = (M5 - M2 - 118.090)*DTR;
  76. p += 0.000006887 * cos(f);
  77. f = (M - M2 - 29.110)*DTR;
  78. p += 0.000005172 * cos(f);
  79. f = (5.0*M - 4*M2 - 104.208)*DTR;
  80. p += 0.000003620 * cos(f);
  81. f = (4.0*M - 4.0*M2 + 63.513)*DTR;
  82. p += 0.000003283 * cos(f);
  83. f = (2.0*M5 - 2.0*M2 - 55.167)*DTR;
  84. p += 0.000003074 * cos(f);
  85. e->r += p;
  86. return(0);
  87. }
  88.